package com.xh.web.service;


import com.xh.web.domain.DColumn;
import com.xh.web.domain.vo.ColumnVo;
import com.xh.web.domain.vo.ExportColumnVo;
import com.xh.web.domain.vo.TableVo;

import java.util.List;
import java.util.Map;

/**
 * 字段Service接口
 *
 * @author fulan
 * @date 2020-09-04
 */
public interface IDColumnService
{

    /**
     * 根据id进行查询
     *
     * @param
     * @return 字段集合
     * (yin)
     */
    public DColumn selectColumnById(String id);



    /**
     * 查询字段列表
     *
     * @param dColumn 字段
     * @return 字段集合
     *
     */
    public List<DColumn> selectDColumnList(DColumn dColumn);

    /**
     * 新增
     *
     * @param dColumn 字段
     * @return 结果
     */
    public int insertDColumn(DColumn dColumn);

    /**
     * 从模板中批量新增
     *
     */
    public int insertChoiceDColumn(String [] ids,String tableId);

    /**
     * 修改字段
     *
     * @param dColumn 字段
     * @return 结果
     */
    public int updateDColumn(DColumn dColumn);

    /**
     * 批量删除字段
     *
     * @param ids 需要删除的字段ID
     * @return 结果
     * （yin）
     */
    public int deleteDColumnByIds(String[] ids);

    /**
     * 删除字段信息
     *
     * @param id 字段ID
     * @return 结果
     */
    public int deleteDColumnById(String id);

    /**
     * 根据字段code查询
     *
     * @param
     * @return 结果
     */
     public DColumn selectColumnByCode(String columnCode,String tableId);

    //查询导出的表
    public List<TableVo> selectTables(ColumnVo columnVo);

    //根据表ids查询column对象
    public List<ExportColumnVo> selectExportColumn(String[] tableIds);

    //批量插入
    public int insertDColumnListOfficial (List<DColumn> columnList);

    //根据表ids查询columnId
    public String[] selectColumnIdList(String[] tableIds);
    //根据表id查询column
    public List<DColumn> selectColumnByTableId(String tableId);

    public Map<String, String> previewCode(String id);

    //根据表projectId查询column
    public List<ColumnVo> selectDProjectById(ColumnVo columnVo);

    /**
     * 加入模板
     */
    public int joinTemplate(DColumn dColumn);

}
